1. Field of the Invention
This invention relates to data storage control architectures and more particularly relates to distributed management for data storage control architectures.
2. Description of the Related Art
Storage systems perform many management tasks for reading and writing data. Storage system management tasks may include accepting read and write data requests, controlling devices, mapping data to storage locations, mirroring data, adding redundant information, maintaining storage devices, and managing the flow of data to and from the storage devices. Storage systems may include Redundant Arrays of Independent Disks (RAID) systems and hard disk drives. Storage systems frequently use microprocessors to manage storage system tasks.
FIG. 1 is a block diagram illustrating a storage system 100 in accordance with the current practice. The storage system 100 manages data storage tasks with a microprocessor 125. The storage system 100 includes a host 105, a host interface 110, an interface bus 115, a bus bridge 120, a local bus 150, a microprocessor 125, a memory 130, a storage interface 135, a cache interface 140, a cache 145, and a storage device 155.
The host 105 transfers data and commands and receives data and status responses through the host interface 110. The microprocessor 125 receives the commands through the interface bus 115, the bus bridge 120, and the local bus 150. The microprocessor 125 may also receive data. In addition, the microprocessor 125 fetches instructions from the memory 130 through the local bus 150. The microprocessor 125 controls the storage system 100 by issuing commands through the local bus 150, the bus bridge 120, and the interface bus 115 to the storage interface 135 and the storage device 155. The storage interface 135 communicates with one or more storage devices 155. In addition, the microprocessor 125 manages operations of the cache 145 through the cache interface 140. The microprocessor 125 manages storage tasks to read and write data. Furthermore, the microprocessor 125 may be required to dynamically perform other specific RAID tasks such as a standby rebuild and hot drive swapping and update RAID configuration information accordingly.
Unfortunately, as data processing system demands for data access increase, the storage system management tasks increase. The microprocessor 125 may be unable to efficiently manage the storage system tasks. Furthermore, growing task complexity increases microcode path lengths. The microprocessor developments such as wider instruction fetch, higher instruction issuing rates, larger instruction windows and more branch predictions have not kept up with the storage task management demands of storage systems. The interface bus 115 and local bus 150 may become bottlenecks to the rapid flow of data and commands between the host and the storage devices. In addition, the microprocessor 125 may have insufficient processing bandwidth to manage the storage tasks. Therefore, the desired increases in performance and cost reduction are difficult to achieve.
What is needed is a process, apparatus, and system that distributes management tasks among two or more task specific modules of lesser complexity. What is further needed is a process, apparatus, and system that allows centralized intermodule communication to promote parallelism among those modules. Beneficially, such a process, apparatus, and system would increase the task management bandwidth of storage systems at reduced cost.